package com.bt.controller.admin;

import com.bt.dto.YddTagDTO;
import com.bt.entity.YddTag;
import com.bt.result.PageResult;
import com.bt.result.Result;
import com.bt.service.YddTagService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description TODO
 * @Author XJL
 * @Date 2023-05-02 14:34
 */
@RequestMapping("/ydd_tag")
@Slf4j
@RestController
@Api(tags = "标签管理相关接口")
public class YddTagController {

    @Autowired
    private YddTagService yddTagService;


    /**
     * 标签列表-分页接口
     * @param page
     * @param limit
     * @param tagname
     * @return
     */
    @ApiOperation("标签列表-分页接口")
    @GetMapping("/list")
    public Result list(Integer page, Integer limit, String tagname){
        log.info("标签列表-分页接口:{}",page,limit,tagname);
        PageResult pageResult = yddTagService.list(page,limit,tagname);
        return Result.success(pageResult);
    }


    /**
     * 标签添加接口
     * @param yddTagDTO
     * @return
     */
    @ApiOperation("标签添加接口")
    @PostMapping("/add")
    public Result add(@RequestBody YddTagDTO yddTagDTO){
        log.info("标签添加接口:{}",yddTagDTO);
        yddTagService.add(yddTagDTO);
        return Result.success();
    }


    /**
     * 标签列表-全部接口
     * @return
     */
    @ApiOperation("标签列表-全部接口")
    @GetMapping("/all")
    public Result all(){
        List<YddTag> yddTagList = yddTagService.all();
        return Result.success(yddTagList);
    }


    /**
     * 标签详情接口
     * @param id
     * @return
     */
    @ApiOperation("标签详情接口")
    @GetMapping("/rowInfo")
    public Result rowInfo(Integer id){
        log.info("标签详情接口:{}",id);
        YddTag yddTag = yddTagService.rowInfo(id);
        return Result.success(yddTag);
    }


    /**
     * 标签修改接口
     * @param yddTagDTO
     * @return
     */
    @ApiOperation("标签修改接口")
    @PostMapping("/update")
    public Result update(@RequestBody YddTagDTO yddTagDTO){
        log.info("标签修改接口:{}",yddTagDTO);
        yddTagService.update(yddTagDTO);
        return Result.success();
    }


    /**
     * 标签删除接口
     * @param id
     * @return
     */
    @ApiOperation("标签删除接口")
    @GetMapping("/del")
    public Result del(Integer id){
        log.info("标签删除接口:{}",id);
        yddTagService.del(id);
        return Result.success();
    }
}
